1. Field of the Invention
The present invention relates to an array-type computer processor including a state control unit and a data-path unit that includes a plurality of processor elements and a plurality of switch elements, which are arranged in a matrix.
2. Description of the Related Art
Current processor units that can perform various data processes include the products that are referred to as the so-called CPU (Central Processing Unit) and MPU (Micro Processor Unit). The data-processing system using such a processor unit includes a memory device and stores various object codes, in which a plurality of operation instructions are described as well as the various processed data. The processor unit can perform a data read in order of the operation instructions and also perform a data read of processed data from a memory device to serially perform a plurality of data processing operations.
A single processor unit can thus perform various data processes. The data processes, however, need to be performed serially in order of the plurality of the operation instructions, and for each of the serial data processes, the processor unit needs to perform a data read of the operation instructions from the memory device, thereby making it hard to perform complicated data processes at high speed.
On the other hand, if only one data process is to be performed, logical circuits may be formed in hardware for performing the data process, without the necessity of the processor unit data reading, in order, the plurality of operation instructions from the memory device to perform the plurality of data processes serially in order. The complicated data processes can thus be performed at high speed, but, of course, only performing one data process in a given logical circuit.
That is, the data-processing system that can switch between any object codes can perform various data processes, but not at high speed as can be achieved by a fixed hardware configuration. On the other hand, the logical circuits in hardware can perform the data processes at high speed, but only one data process due to the fixed object code embodied in the hardware configuration.
To solve the above-described problems, the applicants invented an array-type computer processor as the processor unit that can change the hardware configuration according to software. This array-type computer processor includes a number of small-scale processor elements and switch elements arranged in a matrix, and a data-path unit and state control unit provided in parallel therewith.
Each of the plurality of processor elements can perform a data process individually according to each operation instruction that is individually data set (e.g. set in accordance with the data of the operation instruction). Each of the plurality of switch elements can control each of the connections between the plurality of processor elements according to each operation instruction that is individually data set. The array-type computer processor can thus switch the operation instructions of the plurality of processor elements and the plurality of switch elements to change the hardware configuration to perform the various data processes.
A number of small-scale processor elements as hardware can perform simple data processes in parallel so as to perform complicated data processes at high speed as a whole. For each operation cycle, the state control unit sequentially switches, according to the object code, the context of the operation instructions for the plurality of processor elements and the plurality of switch elements as described above, so that the array-type computer processor can continuously perform the parallel processes according to the object code (see, for example, Japanese Patent No. 3269526, Japanese application patent laid-open publication No. 2000-138579, Japanese application patent laid-open publication No. 2000-224025, Japanese application patent laid-open publication No. 2000-232354, Japanese application patent laid-open publication No. 2000-232162, Japanese application patent laid-open publication No. 2003-076668, Japanese application patent laid-open publication No. 2003-099409, and “Introduction to the Configurable, Highly Parallel Computer”, Lawrence Snyder, Purdue University, “IEEE Computer, vol. 15, No. 1, January 1982, pp 47-56”).
A data-processing system is also in practical use that includes the plurality of data-processing devices connected in parallel for sharing complicated data processes. Such a data-processing system may be of a homogeneity-connected type data processing system with the plurality of data-processing devices of the same structure connected, or a heterogeneity-connected type data processing system with the plurality of data-processing devices of different structures connected.
The homogeneity-connected type of the data-processing system shares one data process in the plurality of data-processing devices of the same structure, thereby allowing for the data process to be performed with high parallelism. The heterogeneity-connected type of the data-processing system shares one data process among the plurality of data-processing devices of different types, thereby allowing each data-processing device to perform its special data process. The applicants proposed the heterogeneity-connected type of the data-processing system as described above which includes the combination of the general MPU and the array-type computer processor (see, for example, Japanese application patent laid-open publication 2003-196248).
The array-type computer processor as described above can actually be used after storing data of a computer program of the object code in a program memory, and connecting the program memory to the array-type computer processor via a system bus and the like. The array-type computer processor then obtains and holds data of the computer program from the external program memory and operates according to the data-held (e.g. stored) computer program.
The array-type computer processor can data store the computer program in a limited storage capacity, however, the user of the array-type computer processor can create any kind of computer programs, so that the data volume of the computer program can exceed the storage capacity of the array-type computer processor. To prevent this, it may be ensured that the array-type computer processor has enough storage capacity. This may, however, enlarge the circuit scale of the array-type computer processor which may increase the circuit size and manufacturing cost. Thus, a small volume computer program may waste the storage capacity of such an enlarged array-type computer processor.